package waitgroup

import (
	"fmt"
	"sync"
)

//主协程，进行time.Sleep，可以一定程度上解决，主死从随的问题
//WaitGroup提供了三个函数，可以优雅的解决主从消息通知：Add，Done, Wait
//Add的数量，必须和Done的数量相等
var wg sync.WaitGroup

func WaitGroupLearn() {
	for i := 0; i < 5; i++ {
		wg.Add(1)
		go func(n int) {
			defer wg.Done()
			fmt.Println(n)
		}(i)
	}
	wg.Wait()
	//time.Sleep(time.Second * 20)
}
